home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / idlelib / configHelpSourceEdit.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  6KB  |  162 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.4)
  3.  
  4. '''Dialog to specify or edit the parameters for a user configured help source.'''
  5. import os
  6. import sys
  7. from Tkinter import *
  8. import tkMessageBox
  9. import tkFileDialog
  10.  
  11. class GetHelpSourceDialog(Toplevel):
  12.     
  13.     def __init__(self, parent, title, menuItem = '', filePath = ''):
  14.         '''Get menu entry and url/ local file location for Additional Help
  15.  
  16.         User selects a name for the Help resource and provides a web url
  17.         or a local file as its source.  The user can enter a url or browse
  18.         for the file.
  19.  
  20.         '''
  21.         Toplevel.__init__(self, parent)
  22.         self.configure(borderwidth = 5)
  23.         self.resizable(height = FALSE, width = FALSE)
  24.         self.title(title)
  25.         self.transient(parent)
  26.         self.grab_set()
  27.         self.protocol('WM_DELETE_WINDOW', self.Cancel)
  28.         self.parent = parent
  29.         self.result = None
  30.         self.CreateWidgets()
  31.         self.menu.set(menuItem)
  32.         self.path.set(filePath)
  33.         self.withdraw()
  34.         self.update_idletasks()
  35.         self.geometry('+%d+%d' % (parent.winfo_rootx() + (parent.winfo_width() / 2 - self.winfo_reqwidth() / 2), parent.winfo_rooty() + (parent.winfo_height() / 2 - self.winfo_reqheight() / 2)))
  36.         self.deiconify()
  37.         self.bind('<Return>', self.Ok)
  38.         self.wait_window()
  39.  
  40.     
  41.     def CreateWidgets(self):
  42.         self.menu = StringVar(self)
  43.         self.path = StringVar(self)
  44.         self.fontSize = StringVar(self)
  45.         self.frameMain = Frame(self, borderwidth = 2, relief = GROOVE)
  46.         self.frameMain.pack(side = TOP, expand = TRUE, fill = BOTH)
  47.         labelMenu = Label(self.frameMain, anchor = W, justify = LEFT, text = 'Menu Item:')
  48.         self.entryMenu = Entry(self.frameMain, textvariable = self.menu, width = 30)
  49.         self.entryMenu.focus_set()
  50.         labelPath = Label(self.frameMain, anchor = W, justify = LEFT, text = 'Help File Path: Enter URL or browse for file')
  51.         self.entryPath = Entry(self.frameMain, textvariable = self.path, width = 40)
  52.         self.entryMenu.focus_set()
  53.         labelMenu.pack(anchor = W, padx = 5, pady = 3)
  54.         self.entryMenu.pack(anchor = W, padx = 5, pady = 3)
  55.         labelPath.pack(anchor = W, padx = 5, pady = 3)
  56.         self.entryPath.pack(anchor = W, padx = 5, pady = 3)
  57.         browseButton = Button(self.frameMain, text = 'Browse', width = 8, command = self.browseFile)
  58.         browseButton.pack(pady = 3)
  59.         frameButtons = Frame(self)
  60.         frameButtons.pack(side = BOTTOM, fill = X)
  61.         self.buttonOk = Button(frameButtons, text = 'OK', width = 8, default = ACTIVE, command = self.Ok)
  62.         self.buttonOk.grid(row = 0, column = 0, padx = 5, pady = 5)
  63.         self.buttonCancel = Button(frameButtons, text = 'Cancel', width = 8, command = self.Cancel)
  64.         self.buttonCancel.grid(row = 0, column = 1, padx = 5, pady = 5)
  65.  
  66.     
  67.     def browseFile(self):
  68.         filetypes = [
  69.             ('HTML Files', '*.htm *.html', 'TEXT'),
  70.             ('PDF Files', '*.pdf', 'TEXT'),
  71.             ('Windows Help Files', '*.chm'),
  72.             ('Text Files', '*.txt', 'TEXT'),
  73.             ('All Files', '*')]
  74.         path = self.path.get()
  75.         if path:
  76.             (dir, base) = os.path.split(path)
  77.         else:
  78.             base = None
  79.             if sys.platform[:3] == 'win':
  80.                 dir = os.path.join(os.path.dirname(sys.executable), 'Doc')
  81.                 if not os.path.isdir(dir):
  82.                     dir = os.getcwd()
  83.                 
  84.             else:
  85.                 dir = os.getcwd()
  86.         opendialog = tkFileDialog.Open(parent = self, filetypes = filetypes)
  87.         file = opendialog.show(initialdir = dir, initialfile = base)
  88.         if file:
  89.             self.path.set(file)
  90.         
  91.  
  92.     
  93.     def MenuOk(self):
  94.         '''Simple validity check for a sensible menu item name'''
  95.         menuOk = True
  96.         menu = self.menu.get()
  97.         menu.strip()
  98.         if not menu:
  99.             tkMessageBox.showerror(title = 'Menu Item Error', message = 'No menu item specified', parent = self)
  100.             self.entryMenu.focus_set()
  101.             menuOk = False
  102.         elif len(menu) > 30:
  103.             tkMessageBox.showerror(title = 'Menu Item Error', message = 'Menu item too long:\nLimit 30 characters.', parent = self)
  104.             self.entryMenu.focus_set()
  105.             menuOk = False
  106.         
  107.         return menuOk
  108.  
  109.     
  110.     def PathOk(self):
  111.         '''Simple validity check for menu file path'''
  112.         pathOk = True
  113.         path = self.path.get()
  114.         path.strip()
  115.         if not path:
  116.             tkMessageBox.showerror(title = 'File Path Error', message = 'No help file path specified.', parent = self)
  117.             self.entryPath.focus_set()
  118.             pathOk = False
  119.         elif path.startswith('www.') or path.startswith('http'):
  120.             pass
  121.         elif path[:5] == 'file:':
  122.             path = path[5:]
  123.         
  124.         if not os.path.exists(path):
  125.             tkMessageBox.showerror(title = 'File Path Error', message = 'Help file path does not exist.', parent = self)
  126.             self.entryPath.focus_set()
  127.             pathOk = False
  128.         
  129.         return pathOk
  130.  
  131.     
  132.     def Ok(self, event = None):
  133.         if self.MenuOk() and self.PathOk():
  134.             self.result = (self.menu.get().strip(), self.path.get().strip())
  135.             if sys.platform == 'darwin':
  136.                 path = self.result[1]
  137.                 if path.startswith('www') and path.startswith('file:') or path.startswith('http:'):
  138.                     pass
  139.                 else:
  140.                     self.result[1] = 'file://' + path
  141.             
  142.             self.destroy()
  143.         
  144.  
  145.     
  146.     def Cancel(self, event = None):
  147.         self.result = None
  148.         self.destroy()
  149.  
  150.  
  151. if __name__ == '__main__':
  152.     root = Tk()
  153.     
  154.     def run():
  155.         keySeq = ''
  156.         dlg = GetHelpSourceDialog(root, 'Get Help Source')
  157.         print dlg.result
  158.  
  159.     Button(root, text = 'Dialog', command = run).pack()
  160.     root.mainloop()
  161.  
  162.